home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
QRZ! Ham Radio 8
/
QRZ Ham Radio Callsign Database - Volume 8.iso
/
mac
/
files
/
dsp
/
56000tar.z
/
56000tar
/
56000
/
flts
/
transiir.asm
< prev
next >
Wrap
Assembly Source File
|
1991-11-26
|
2KB
|
85 lines
page 132,60,1,1
;
; This program, originally available on the Motorola DSP bulletin board,
; is provided under a DISCLAIMER OF WARRANTY available from Motorola DSP
; Operation, 6501 William Cannon Drive, West, Austin, Texas 78735-8598.
;
;
; The cascaded transpose IIR filter has a filter section:
;
;
; x --------------bi0---->(+)--------------------> y
; | ^ |
; | | w1 |
; | 1/z |
; | | |
; |----bi1---->(+)<---ai1----|
; | ^ |
; | | w2 |
; | 1/z |
; | | |
; |----bi2---->(+)<---ai2----|
;
; The filter equations are:
; y = x*bi0 + w1
; w1 = x*bi1 + y*ai1 + w2
; w2 = x*bi2 + y*a2
nsec equ 2 ;number of sections
org x:0
w1 dsm nsec ;w1
w2 dsm nsec ;w2
org y:0
coef
; section 1
dc .8/2.0 ;b0
dc -.5/2.0 ;b1
dc -.6/2.0 ;a1
dc .3/2.0 ;b2
dc .2/2.0 ;a2
; section 2
dc -.8/2.0 ;b0
dc .5/2.0 ;b1
dc -.6/2.0 ;a1
dc -.3/2.0 ;b2
dc .1/2.0 ;a2
org p:$50
start
move #w1,r0
move #w2,r1
move #coef,r4
move #nsec-1,m0
move #5*nsec-1,m4
move #nsec-1,m1
;
; filter setup
;
ori #$08,mr ;set scaling mode
move x:(r0),a y:(r4)+,y0 ;get w1, b0
asr a ;w1/2
do #20,endloop ;process 20 samples
move x:$50,y1 ;get input
; filter loop
do #nsec,_filt ;do filter sections
macr y1,y0,a x:(r1),b y:(r4)+,y0 ;x*b0+w1/2, get w2, b1
asr b a,x0 ;w2/2, move y to x0
mac y1,y0,b y:(r4)+,y0 ;x*b1+w2/2, get a1
macr x0,y0,b y:(r4)+,y0 ;+y*a1, get b2
mpy y1,y0,b b,x:(r0)+ y:(r4)+,y0 ;x*b2, save w1, get a2
macr x0,y0,b x:(r0),a a,y1 ;y*a2, get w1, move y->x
asr a b,x:(r1)+ y:(r4)+,y0 ;w1/2, save w2, get b0
_filt
move y1,y:$50 ;save output
endloop
end